Флаги
O D I T S Z A P C 0 * * ? * 0
Команда:
TEST destination,source
Логика:
(destination AND source); Только изменение признаков CF = 0 OF = 0
Команда TEST выполняет операцию AND над своими операндами и меняет значения признаков. Сами операнды не изменяются.
| Операнды | Такт байты (слова) | Обращения | Байты | Пример |
| регистр,регистр | 3 | - | 2 | TEST AL,DL |
| регистр,непоср.операнд | 5 | - | 3-4 | TEST CX,0FFh |
| аккумулятор,непоср.оп. | 4 | - | 2-3 | TEST AX,01000010b |
| регистр,память | 9(13)+EA | 1 | 2-4 | TEST CX,MASK |
| память,непоср.операнд | 11+EA | - | 3-6 | TEST GAMMA,01h |
Команда TEST полезна при проверке значения конкретного бита. Например, следующий кусок программы передает управление в ONE_FIVE_OFF, если биты 1 и 5 регистра AL сброшены. Значения остальных битов во внимание не принимаются.
TEST AL,00100010b ;Маскируем все биты, кроме 1 и 5
JZ ONE_FIVE_OFF ;Если хотя бы один установлен,
;то ZF=1
NOT_BOTH: .
.
ONE_FIVE_OFF: ;Биты 1 и 5 сброшены
.
.